package mathOperations; import java.util.ArrayList; import polynom.Term; public class Division implements Operation { public Division(ArrayList<Term> firstPoly, ArrayList<Term> secondPoly, ArrayList<Term> resultPoly) { sortPoly(firstPoly, firstPoly.size()); sortPoly(secondPoly, secondPoly.size()); opPoly(firstPoly, firstPoly.size()); opPoly(secondPoly, secondPoly.size()); divide(firstPoly,secondPoly,resultPoly); sortPoly(resultPoly, resultPoly.size()); opPoly(resultPoly, resultPoly.size()); } private void divide(ArrayList<Term> firstPoly, ArrayList<Term> secondPoly, ArrayList<Term> resultPoly) { // TODO Auto-generated method stub ArrayList<Term> buffer = new ArrayList<Term>(); buffer.addAll(firstPoly); int i = 0; while (i < buffer.size() && buffer.get(i).power >= secondPoly.get(0).power) { //while (buffer.get(i).power >= secondPoly.get(0).power) { Term term = new Term(); term.coef = buffer.get(i).coef / secondPoly.get(0).coef; term.power = buffer.get(i).power - secondPoly.get(0).power; System.out.println(term.coef); System.out.println(term.power); resultPoly.add(term); ArrayList<Term> buffer_result = new ArrayList<Term>(); buffer_result.add(term); ArrayList<Term> buffer_multip = new ArrayList<Term>(); new Multiplication(buffer_result, secondPoly, buffer_multip); ArrayList<Term> buffer_diff = new ArrayList<Term>(); new Difference(buffer, buffer_multip, buffer_diff); buffer.clear(); buffer.addAll(buffer_diff); sortPoly(buffer, buffer.size()); opPoly(buffer, buffer.size()); //} i++; } } }